import {
  createRouter,
  createWebHashHistory,
  createWebHistory
} from 'vue-router'

import LoginPage from '@pages/LoginPage.vue'
import AdminPage from '@pages/AdminPage.vue'
import BannerPage from '@pages/BannerPage.vue'
import MenuList from '@pages/MenuList.vue'
import EditorPage from '@/pages/EditorPage.vue'
import EchartsPage from '@/pages/EchartsPage.vue'

const router = createRouter({
  // 使用 hash模式 还是 history模式
  // history: createWebHashHistory(), // hash 模式
  history: createWebHistory(), // history 模式
  routes: [
    {
      path: '/',
      // 重定向
      redirect: '/login'
    },
    {
      // 只有最外层的路径 需要加 /，其他的不用加 /
      path: '/login',
      // 别名
      // alias: '/',
      component: LoginPage
    },
    {
      path: '/admin',
      component: AdminPage,
      // 路由级别的守卫  导航守卫

      // 嵌套路由
      children: [
        {
          path: 'bannerlist',
          component: BannerPage
        },
        {
          path: '',
          redirect: '/admin/bannerlist'
        },
        // 这里表示的是路由重定向。解决的bug的问题
        {
          path: "menulist",
          component:MenuList
        },
        {
          path: 'editor',
          component:EditorPage
        },
        {
          path: 'echarts',
          component:EchartsPage
        },
        
      ]
    }
  ]
})

// 导航守卫   全局级别的守卫，只要路由跳转就会执行。
// 第一次的时候也能触发
// 在跳转之前执行
router.beforeEach((to, from,next) => { 
  const token = localStorage.getItem('token')
  const adminname = localStorage.getItem('adminname')
  if (!token||!adminname) {
    if (to.path === "/login") {
      next()
      return
    }
    next("/login")
  } else {
    next()
  }


  // if (to.path === '/admin') {
  //   // 表示的是获取token和adminname的信息，根据信息判断是否能够登录
  //   const token = localStorage.getItem('token')
  //   const adminname = localStorage.getItem('adminname')

  //   // 当 localstorage 里没有 token 或者 adminname 时，
  //   // 自动跳转到 登录页
  //   if (!token || !adminname) {
  //     return '/login'
  //   }
  // }
})

// 路由和组件的区别，暂时的，路由必须要跳转比如（点击，this.$router.push,饿了么ui时的路由导航。）时才能
export default router